home *** CD-ROM | disk | FTP | other *** search
/ Aminet 48 / Aminet 48 (2002)(GTI - Schatztruhe)[!][Apr 2002].iso / Aminet / text / edit / vim60rt.lha / Vim / vim60 / syntax / natural.vim < prev    next >
Encoding:
Text File  |  2001-07-28  |  6.7 KB  |  201 lines

  1. " Vim syntax file
  2. "
  3. " Language:        NATURAL
  4. " Version:        2.26.005
  5. " Maintainer:    Marko Leipert <vim@mleipert.de>
  6. " Last Changed:    2001-07-26 09:48:00
  7. " Support:        http://www.winconsole.de/vim/syntax.html
  8.  
  9.  
  10. " For version 5.x: Clear all syntax items
  11. " For version 6.x: Quit when this syntax file was already loaded
  12. if v:version < 600
  13.     syntax clear
  14.     set iskeyword+=-,*,#,+,_,/
  15. elseif exists("b:current_syntax")
  16.     finish
  17. else
  18.     setlocal iskeyword+=-,*,#,+,_,/
  19. endif
  20.  
  21. " NATURAL is case insensitive
  22. syntax case ignore
  23.  
  24. " preprocessor
  25. syn keyword naturalInclude        include nextgroup=naturalObjName skipwhite
  26.  
  27. " define data
  28. syn keyword naturalKeyword        define data end-define
  29. syn keyword naturalKeyword        independent global parameter local redefine view
  30. syn keyword naturalKeyword        const[ant] init initial
  31.  
  32. " loops
  33. syn keyword naturalLoop            read end-read end-work find end-find histogram end-histogram
  34. syn keyword naturalLoop            end-all sort end-sort sorted descending ascending
  35. syn keyword naturalRepeat        repeat end-repeat while until for step end-for
  36. syn keyword naturalKeyword        in file with field starting from ending at thru by isn where
  37. syn keyword naturalError        on error end-error
  38. syn keyword naturalKeyword        accept reject end-enddata number retain as release
  39. syn keyword naturalKeyword        start end-start break end-break skip physical page top sequence
  40. syn keyword naturalKeyword        end-toppage end-endpage end-endfile before processing
  41. syn keyword naturalKeyword        end-before
  42.  
  43. " conditionals
  44. syn keyword    naturalConditional    if then else end-if end-norec
  45. syn keyword    naturalConditional    decide end-decide value when condition none any
  46.  
  47. " assignment / calculation
  48. syn keyword naturalKeyword        reset assign move left right justified compress to into edited
  49. syn keyword naturalKeyword        add subtract multiply divide compute name
  50. syn keyword naturalKeyword        all giving remainder rounded leaving space
  51. syn keyword naturalKeyword        examine full replace giving separate delimiter modified
  52. syn keyword naturalKeyword        suspend identical suppress
  53.  
  54. " program flow
  55. syn keyword naturalFlow            callnat fetch return escape bottom top stack formatted
  56. syn keyword naturalFlow            command call
  57. syn keyword naturalflow            end-subroutine routine
  58.  
  59. " file operations
  60. syn keyword naturalKeyword        update store get delete end transaction work once close
  61.  
  62. " other keywords
  63. syn keyword naturalKeyword        first every of no record[s] found ignore immediate
  64. syn keyword naturalKeyword        set settime key control stop terminate
  65.  
  66. " in-/output
  67. syn keyword naturalKeyword        write display input reinput notitle nohdr map newpage mark
  68. syn keyword naturalKeyword        alarm text help eject index
  69. syn keyword naturalKeyword        format printer
  70.  
  71. " functions
  72. syn keyword naturalKeyword        val old
  73.  
  74. " report mode keywords
  75. syn keyword naturalRMKeyword    same loop obtain indexed do doend
  76.  
  77. " Subroutine name
  78. syn keyword    naturalFlow            perform subroutine nextgroup=naturalFunction skipwhite
  79. syn match    naturalFunction        "\<[a-z][-_a-z0-9]*\>"
  80.  
  81. syn keyword    naturalFlow            using nextgroup=naturalKeyword,naturalObjName skipwhite
  82. syn match    naturalObjName        "\<[a-z][-_a-z0-9]\{,7}\>"
  83.  
  84. " Labels
  85. syn match    naturalLabel        "\<[+#a-z][-_#a-z0-9]*\."
  86. syn match    naturalRef            "\<[+#a-z][-_#a-z0-9]*\>\.\<[+#a-z][-_#a-z0-9]*\>"
  87.  
  88. " System variables
  89. syn match    naturalSysVar        "\<\*[a-z][-a-z0-9]*\>"
  90.  
  91. "integer number, or floating point number without a dot.
  92. syn match    naturalNumber        "\<-\=\d\+\>"
  93. "floating point number, with dot
  94. syn match    naturalNumber        "\<-\=\d\+\.\d\+\>"
  95. "floating point number, starting with a dot
  96. syn match    naturalNumber        "\.\d\+"
  97.  
  98. " Formats in write statement
  99. syn match    naturalFormat        "\<\d\+[TX]\>"
  100.  
  101. " String and Character contstants
  102. syn match    naturalString        "H'\x\+'"
  103. syn region  naturalString        start=+"+ end=+"+
  104. syn region    naturalString        start=+'+ end=+'+
  105.  
  106. " Type definition
  107. syn match    naturalAttribute    "\<[-a-z][a-z]=[-a-z0-9_\.]\+\>"
  108. syn match    naturalType            contained "\<[ANIP]\d\+\(,\d\+\)\=\>"
  109. syn match    naturalType            contained "\<[CL]\>"
  110.  
  111. " TODO / other comments
  112. syn keyword naturalTodo            contained todo test
  113. syn match    naturalCommentMark    contained "[a-z][^ \t/:|]*\(\s[^ \t/:|]\+\)*:\s"he=e-1
  114.  
  115. " comments
  116. syn region    naturalComment        start="/\*" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
  117. syn region    naturalComment        start="^\*[\ \*]" end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
  118. syn region    naturalComment        start="^\d\{4} \*[\ \*]"lc=5 end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
  119. syn match    naturalComment        "^*$"
  120. syn match    naturalComment        "^\d\{4} \*$"lc=5
  121. " /* is legal syntax in parentheses e.g. #ident(label./*)
  122. syn region    naturalPComment        contained start="/\*\s*[^)]"  end="$" contains=naturalTodo,naturalLineRef,naturalCommentMark
  123.  
  124. " operators
  125. syn keyword    naturalOperator        and or not eq ne gt lt ge le mask scan
  126.  
  127. " constants
  128. syn keyword naturalBoolean        true false
  129.  
  130. syn match    naturalLineNo        "^\d\{4}"
  131.  
  132. " identifiers
  133. syn match    naturalIdent        "\<[+#a-z][-_#a-z0-9]*\>[^\.']"me=e-1
  134. syn match    naturalIdent        "\<[+#a-z][-_#a-z0-9]*$"
  135. syn match    naturalLegalIdent    "[+#a-z][-_#a-z0-9]*/[-_#a-z0-9]*"
  136.  
  137. " parentheses
  138. syn region  naturalPar            matchgroup=naturalParGui start="(" end=")" contains=naturalLabel,naturalRef,naturalOperator,@naturalConstant,naturalType,naturalSysVar,naturalPar,naturalLineNo,naturalPComment
  139. syn match    naturalLineRef        "(\d\{4})"
  140.  
  141. " build syntax groups
  142. syntax cluster naturalConstant    contains=naturalString,naturalNumber,naturalAttribute,naturalBoolean
  143.  
  144. if v:version >= 508 || !exists("did_natural_syntax_inits")
  145.     if v:version < 508
  146.         let did_natural_syntax_inits = 1
  147.         command -nargs=+ HiLink hi link <args>
  148.     else
  149.         command -nargs=+ HiLink hi def link <args>
  150.     endif
  151.     " The default methods for highlighting.  Can be overridden later
  152.  
  153.     " Constants
  154.     HiLink naturalFormat        Constant
  155.     HiLink naturalAttribute        Constant
  156.     HiLink naturalNumber        Number
  157.     HiLink naturalString        String
  158.     HiLink naturalBoolean        Boolean
  159.  
  160.     " All kinds of keywords
  161.     HiLink naturalConditional    Conditional
  162.     HiLink naturalRepeat        Repeat
  163.     HiLink naturalLoop            Repeat
  164.     HiLink naturalFlow            Keyword
  165.     HiLink naturalError            Keyword
  166.     HiLink naturalKeyword        Keyword
  167.     HiLink naturalOperator        Operator
  168.     HiLink naturalParGui        Operator
  169.  
  170.     " Labels
  171.     HiLink naturalLabel            Label
  172.     HiLink naturalRefLabel        Label
  173.  
  174.     " Comments
  175.     HiLink naturalPComment        Comment
  176.     HiLink naturalComment        Comment
  177.     HiLink naturalTodo            Todo
  178.     HiLink naturalCommentMark    PreProc
  179.  
  180.     HiLink naturalInclude        Include
  181.     HiLink naturalSysVar        Identifier
  182.     HiLink naturalLineNo        LineNr
  183.     HiLink naturalLineRef        Error
  184.     HiLink naturalSpecial        Special
  185.     HiLink naturalComKey        Todo
  186.  
  187.     " illegal things
  188.     HiLink naturalRMKeyword        Error
  189.     HiLink naturalLegalIdent    Error
  190.  
  191.     HiLink naturalType            Type
  192.     HiLink naturalFunction        Function
  193.     HiLink naturalObjName        Function
  194.  
  195.     delcommand HiLink
  196. endif
  197.  
  198. let b:current_syntax = "natural"
  199.  
  200. " vim:set ts=4 sw=4 noet ft=vim list:
  201.